using AndyPike.Experiments.Fluent.Commands;
using AndyPike.Experiments.Fluent.Events;

namespace AndyPike.Experiments.Fluent.Interfaces
{
    public interface IFluentImage  
    {
        event ImageCommandEventHandler CommandStarted;
        event ImageCommandEventHandler CommandCompleted;

        IFluentImage ExecuteCommand(ICommand command);

        IFluentImage Brightness(int level);
        IFluentImage Contrast(int level);
        IFluentImage Greyscale();
        IFluentImage Resize(int width, int height, ResizeMode mode);
        IFluentImage SaveAsJpeg(string path, int qualityLevel);
    }
}